package com.woniuxy.charin.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.woniuxy.charin.mapper.ChargingGunMapper;
import com.woniuxy.charin.model.entity.ChargingGun;
import com.woniuxy.charin.service.ChargingGunService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 服务接口实现
 *
 * @author
 * @description
 * @since 2024-12-23 20:40:30
 */
@Slf4j
@RequiredArgsConstructor
@Service
public class ChargingGunServiceImpl
        extends ServiceImpl<ChargingGunMapper, ChargingGun>
        implements ChargingGunService {

    @Autowired
    private ChargingGunMapper chargingGunMapper;

    public List<ChargingGun> getChargingGunList(int page, int size) {
        log.info("getChargingPileList: page={}, size={}", page, size);
        Page<ChargingGun> chargingGunPage = new Page<>(page, size);
        return chargingGunMapper.selectPage(chargingGunPage, null).getRecords();
    }

    public void addChargingGun(ChargingGun chargingGun) {
        log.info("addChargingGun: chargingGun={}", chargingGun);
        chargingGunMapper.insert(chargingGun);
    }

    public void updateChargingGun(ChargingGun chargingGun) {
        log.info("updateChargingGun: chargingGun={}", chargingGun);
        chargingGunMapper.updateById(chargingGun);
    }

    public void deleteChargingGun(int id) {
        log.info("deleteChargingGun: id={}", id);
        chargingGunMapper.deleteById(id);
    }

    @Override
    public List<ChargingGun> listByChargingPileId(Long id) {
        log.info("listByChargingPileId: id={}", id);
        LambdaQueryWrapper<ChargingGun> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ChargingGun::getPileId, id);
        return chargingGunMapper.selectList(wrapper);
    }


    //removeById
    @Override
    public boolean removeById(Long id) {
        chargingGunMapper.deleteById(id);
        return true;
    }

    //updateById
    @Override
    public boolean updateById(ChargingGun chargingGun) {
        chargingGunMapper.updateById(chargingGun);
        return true;
    }

    //save
    @Override
    public boolean save(ChargingGun chargingGun) {
        log.info("saveChargingGun: chargingGun={}", chargingGun);
        chargingGunMapper.insert(chargingGun);
        return true;
    }
}